home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Commodore Disk User Volume 1 #2
/
Commodore_Disk_User_Vol.1_2_1988_-.d64
/
character editor
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
4KB
|
125 lines
10 rem noluxe character editer
20 rem ludo decock
30 rem lindenstraat 26
40 rem 8840 gits
50 rem belgium
60 dimte$(36):l=48:z=1144:gosub1200:le=1
70 poke53280,0:poke53281,0:sys58692:poke646,5:printchr$(142)chr$(9):poke53269,0
80 print" [164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]"
90 print" noluxe character editor "
100 print" by flossoftware (c)1987 "
110 input"load character set y/n (e=end) ";jn$
120 ifjn$="y"then1080
130 ifjn$="e"thenprintchr$(147)chr$(8):end
140 print"how big are the characters (x*y < 256) ?"
150 poke19,1:input"- x-value (< 21) :";b:poke19,0:print
160 poke19,1:input"- y-value (< 30) :";h:poke19,0:print
170 ifb*h>255orb>29orh>20then70
180 rem screen---------------------------
190 print"[147]";:fory=0toh-1:forx=(1144+(y*40))to(1144+b+(y*40))-1
200 pokex+54272,6:pokex,207:nextx,y
210 print"[129] [164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]"
220 print" noluxe character editor "
230 print" [152] by flossoftware (c)1987 "
240 r=4:k=30:gosub400:print"[158] f1 [146] [153]mode"
250 r=6:k=30:gosub400:print"[158] f2 [146] [153]save"
260 r=8:k=30:gosub400:print"[158] f4 [146] [153]show"
270 r=10:k=30:gosub400:print"[158] f6 [146] [153]disk"
280 r=12:k=30:gosub400:print"[158] f8 [146] [153]run"
290 r=14:k=30:gosub400:print"[158] - [146]"
300 r=15:k=35:gosub400:print"[153]page"
310 r=16:k=30:gosub400:print"[158] + [146]"
320 r=17:k=37:gosub400:print"[153][169][223]"
330 r=18:k=30:gosub400:print"[158]crsr [146] [153][169][146][186][204][223]"
340 r=19:k=36:gosub400:print"[223][208][207][169]"
350 r=20:k=37:gosub400:print"[223][169]"
360 r=22:k=30:gosub400:print"[156]chr$"
370 r=22:k=34:gosub400:print"[150]";l
380 r=24:k=33:gosub400:print"[154]";chr$(l);"":poke53269,1
390 goto420
400 poke214,r:poke211,k:sys58640:return
410 rem button ? ------------------------
420 geta$:ifa$=""then420
430 a=asc(a$)
440 rem cursor move ---------------------
450 ifa<>17anda<>29anda<>145anda<>157then580
460 ifa<>145then490
470 ifpeek(53249)=74then420
480 gosub1160:poke53249,peek(53249)-8:pv=pv-40:goto420
490 ifa<>17then520
500 ifpeek(53249)=74+((h-1)*8)then420
510 gosub1160:poke53249,peek(53249)+8:pv=pv+40:goto420
520 ifa<>157then550
530 ifpeek(53248)=24then420
540 gosub1160:poke53248,peek(53248)-8:pv=pv-1:goto420
550 ifpeek(53248)=24+((b-1)*8)then420
560 gosub1160:poke53248,peek(53248)+8:pv=pv+1:goto420
570 rem mode ----------------------------
580 ifa<>133then630
590 ifpk=0thenpk=11:poke53280,pk:goto420
600 ifpk=11thenpk=15:poke53280,pk:goto420
610 ifpk=15thenpk=0:poke53280,pk:goto420
620 rem next character ------------------
630 ifa<>43then680
640 ifl=90then420
650 ifl=57thenl=65:le=le+1:goto370
660 l=l+1:le=le+1:goto370
670 rem previous character --------------
680 ifa<>45then730
690 ifl=48then420
700 ifl=65thenl=57:le=le-1:goto370
710 l=l-1:le=le-1:goto370
720 rem character in memory -------------
730 ifa<>137then810
740 te$(le)="":poke53280,2:poke53269,0:fors=ztoz+b:so=0
750 forss=stos+(h*40)step40:so=peek(ss)+so:nextss
760 ifso=207*h+32thennexts:pk=0:so=0:poke53269,1:goto420
770 forss=stos+(h*40)step40:so=peek(ss):ifso=160thente$(le)=te$(le)+"1":nextss
780 ifso=207thente$(le)=te$(le)+"0":nextss
790 nexts:poke53280,0:poke53269,1:pk=0:so=0:goto420
800 rem character to screen -------------
810 ifa<>138then920
820 poke53280,4:poke53269,0:u=0:q=0
830 fory=0toh-1:forx=(1144+(y*40))to(1144+b+(y*40))-1:pokex+54272,6:pokex,207:nextx,y
840 ifte$(le)=""then900
850 fors=1tolen(te$(le)):u=u+1:ifu>hthenu=1:q=q+1
860 ss=z+q+((u-1)*40)
870 ifmid$(te$(le),s,1)="1"thenpokess,160:pokess+54272,5:goto890
880 ifmid$(te$(le),s,1)="0"thenpokess,207
890 nexts
900 poke53280,0:poke53269,1:pk=0:q=0:u=0:goto420
910 rem new start -----------------------
920 ifa<>140then980
930 k=0:r=24:gosub400:print"r[146]un/g[146]o on"
940 getke$:ifke$<>"r"andke$<>"g"then940
950 ifke$="g"thenk=0:r=24:gosub400:print" ":goto420
960 run
970 rem save to disk --------------------
980 ifa<>139then1140
990 k=0:r=24:gosub400:print"s[146]ave/g[146]o on"
1000 getke$:ifke$<>"s"andke$<>"g"then1000
1010 ifke$="g"thenk=0:r=24:gosub400:print" ":goto420
1020 poke53269,0
1030 print"[147][152]save":poke19,1:input"filename: ";fi$:iflen(fi$)>13thenprint:goto1030
1040 fi$="k."+left$(fi$,len(fi$)):poke19,0:open2,8,2,fi$+",s,w"
1050 print#2,b:print#2,h:forf=1to36:ifte$(f)=""thente$(f)="2"
1060 print#2,len(te$(f)):print#2,te$(f):nextf:close2:goto190
1070 rem load from disk -----------------
1080 print"[147][152]load":poke19,1:input"filename : ";fi$:iflen(fi$)>13thenprint:goto1080
1090 fi$="k."+left$(fi$,len(fi$)):poke19,0:open15,8,15:open2,8,2,fi$+",s,r"
1100 input#15,en:ifen>19thenclose2:close15:goto1080
1110 input#2,b:input#2,h:forf=1to36:te$(f)="":input#2,le
1120 fori=1tole:get#2,x$:te$(f)=te$(f)+x$:nexti:get#2,x$:nextf:close2:close15
1130 l=48:le=1:goto190
1140 goto420
1150 rem poke color & character ---------
1160 ifpk=11thenpokepv+1144,160:pokepv+55416,5
1170 ifpk=15thenpokepv+1144,207:pokepv+55416,6
1180 return
1190 rem sprite -------------------------
1200 poke2040,15:fori=0to62:readq:poke960+i,q:nexti
1210 poke53248,24:poke53249,74:poke53287,1
1220 data255,192,0,255,192,0,192,192,0,192,192,0,192,192,0,192,192,0,192,192,0
1230 data192,192,0,255,192,0,255,192,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
1240 return